SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 56257: An IPC_CONNECTION_BROKEN and IPC_CORRUPTED_DATA exception might occur when you cancel the opening of a read-only allocation worksheet

DetailsAboutRate It

In SAS® Merchandise Allocation, an IPC_CONNECTION_BROKEN and IPC_CORRUPTED_DATA exception might be generated with exception details similar to the following in the log:

You can open the worksheet in read-only mode or ask a user with administrator privileges to reset the worksheet so you can edit it. 
Do you want to open the worksheet in read-only mode?" systemMessage="" level="4" />
Sending information to client: <Error code="2" userMessage="This worksheet was opened by PMartin on 08/18/2015. 
The XML string is as follows: <ServerRequest> <Request name="CancelOpen" />  </ServerRequest>
CANCEL command
SOL for readCubeKey is :SELECT lock_id from maxdata.MMAX_LOCKS where CUBE_KEY = 'bc71d58b-5a4d-4125-b0fb-47c1491ff5bc' AND lock_level = 94 AND lock_type = 'AL_OPEN'
Executing SQLSELECT lock_id from maxdata.MMAX_LOCKS where CUBE_KEY = 'bc71d58b-5a4d-4125-b0fb-47c1491ff5bc' AND lock_level = 94 AND lock_type = 'AL_OPEN'
com.sas.retail.merchplan.ipc.error.IPCConnectionBrokenException: remote socket closed connection
	at com.sas.retail.merchplan.ipc.connection.Connection.receive(Connection.java:109)
	at com.sas.retail.merchplan.ipc.wireproto.Header.receive(Header.java:85)
	at com.sas.retail.merchplan.ipc.connection.Connection.receive(Connection.java:85)
	at com.sas.retail.merchplan.ipc.status_monitor.StatusMonitor.run(StatusMonitor.java:115)
	at java.lang.Thread.run(Thread.java:745)

<Error code="IPC_CORRUPTED_DATA" userMessage="The data received from the cube was corrupted." systemMessage="protocol reading error: null" level="4" />
	at com.marketmax.Interface.me.adapter.LocalDPEAdapter.handleIPCException(Unknown Source)
	at com.marketmax.Interface.me.adapter.LocalDPEAdapter.processRequest(Unknown Source)
	at com.marketmax.Interface.me.command.ProcessRequestCommand.process(Unknown Source)
	at com.marketmax.Interface.me.command.AbstractMECommand.execute(Unknown Source)
	at com.marketmax.Interface.me.MMXMEInterfaceManager.processRequest(Unknown Source)
	at com.marketmax.Interface.servlet.MMXWorksheetInterfaceServlet.callPE(Unknown Source)
	at com.marketmax.Interface.servlet.MMXWorksheetInterfaceServlet.doGet(Unknown Source)
| 	at com.marketmax.Interface.servlet.MMXWorksheetInterfaceServlet.doPost(Unknown Source)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.marketmax.framework.coe.web.RequestFilter.doFilter(Unknown Source)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.marketmax.util.XSSFilter.doFilter(Unknown Source)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Execute command error: 
Sending information to client: 

An IPC_CONNECTION_BROKEN error occurs after you select Cancel when a read-only allocation worksheet is opening. The exception is also generated in any active allocation worksheet when you click on anything in the worksheet. If you select OK after the IPC_CONNECTION_BROKEN error occurs, then an IPC_CORRUPTED_DATA error occurs. The IPC_CORRUPTED_DATA error persists until you close and then re-open the worksheet.

The workaround for this issue is to select Yes or No instead of Cancel when the read-only worksheet is opening.



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemSAS Merchandise AllocationMicrosoft Windows Server 2008 R23.5_M13.5_M19.4 TS1M29.4 TS1M2
64-bit Enabled AIX3.5_M13.5_M19.4 TS1M29.4 TS1M2
Linux for x643.5_M13.5_M19.4 TS1M29.4 TS1M2
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.